Image editing applications (as well as video and other media editing applications) provide users with the ability to modify digital images from their original state. Often a user will want to modify the color properties of an entire image, or more commonly, a selection of an image. For example, a user might want to increase the saturation in a selection to make the color more intense and thereby cause that selection stand out more in the image. Other color properties a user might want to change include hue, luminosity, etc. Modification of the color properties of a selection will be referred to as color correction.
In order to modify a selection of an image, a user must first be provided with a tool for defining the selection they want to modify. Some prior art selection tools base the selection on a color selected by a user. A user can specify (by selecting from a color palette or by clicking on a point in an image) what color they want to select, and the selection tool will define a selection as all pixels in the image within a threshold of the selected color. However, in some cases a user will only want to select some of the pixels of the selected color (e.g., if there are multiple faces in an image and a user wants to highlight one of the faces). Further, sometimes a desired selection will include multiple colors (e.g., a head with skin, hair, eyes, etc.).
Other prior art selection tools allow a user to draw a border around the area of the image the user wants to select for color correction. However, doing so is often a very difficult process as the border of the selection is defined by the exact movement of the cursor. This requires a user to move very slowly and carefully through the image. Therefore, there is a need for a selection tool that allows a user to move more quickly through the image yet still defines a border in the image in the appropriate location.
A further shortcoming of such prior art selection tools is the inability to correct a mistake. A user of such selection tools must be able to start at the beginning of a desired border and move a cursor all the way to the desired endpoint without making a mistake. If a mistake is made, the user must start the selection process over. This can be a very frustrating process for the user, especially if the border the user attempts to draw is long, and the user has to make multiple attempts to draw the border. Therefore, there is a need for a selection tool that allows a user to correct mistakes when attempting to define a border in an image.
A third shortcoming of the above prior art selection tools is that they define a border that does not allow for a natural transition from foreground to background. Some tools do not create a hard edge between a selection and the rest of the image, but apply a simple softening of the edge of a selection. However, these tools do not create the softening effect based on an intelligent algorithm that accounts for the actual nature of the border. When attempting to select an area such as a head with hair, it is nearly impossible to trace out every hair, but the ability to keep the hairs in the foreground is a useful feature. Furthermore, even at borders that are easier to select, an intelligent transition from the foreground to background that is specific to the border may be desirable. Therefore, there is a need for a user to be able to define an area as a transition section, and to determine the size and shape of the transition section. In addition, there is a need to be able to define an intelligent transition from foreground to background for a selection.